package com.fs.cv.service.impl;

import com.fs.cv.dao.StudentCourseDao;
import com.fs.cv.pojo.pojodao.User;
import com.fs.cv.pojo.pojoview.StudentCourse;
import com.fs.cv.service.StudentCourseService;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * <p>学生成绩管理业务实现层</p>
 *
 * @author : 苏明友
 * @date : 2020-09-29 08:50
 **/
@Service
public class StudentCourseServiceImpl implements StudentCourseService {
    /**
     * 方法描述:使用构造方法进行注入
     * @参数
     * @返回值
     * @作者 苏明友
     * @时间 2020/9/29
     */
    @Autowired //自动装配
    private StudentCourseDao studentCourseDao;


    /**
     * 方法描述:老师查看并且管理所有学生的成绩
     * @参数 []
     * @返回值 java.util.List<com.fs.cv.pojo.Teacher>
     * @作者 苏明友
     * @时间 2020/9/29
     */
    @Override
    public List<StudentCourse> getAllStudentCourseByStudentId(Integer userId) {
        return studentCourseDao.getAllStudentCourseByStudentId(userId);
    }

    /**
     * 方法描述:使用学生姓名来进行模糊查询学生的成绩进行管理
     * @参数 [studentNameValue]
     * @返回值 java.util.List<com.fs.cv.pojo.StudentCourse>
     * @作者 苏明友
     * @时间 2020/9/29
     */
    @Override
    public List<StudentCourse> getStudentByName(String studentNameValue,Integer userId) {
        String column = "student_name";
        return studentCourseDao.queryStudentByColumn(column,studentNameValue,userId);
    }

    /**
     * 方法描述:根据学生的id逻辑删除学生的成绩信息
     * @参数 [studentId]
     * @返回值 boolean
     * @作者 苏明友
     * @时间 2020/10/8
     */
    @Override
    public int deleteStudentScoreByStudentId(Integer studentId) {
        return studentCourseDao.deleteStudentScoreByStudentId(studentId);
    }

    /**
     * 方法描述:根据学生的id查询学生的课程以及所对应的成绩信息，然后显示到成绩编辑的模态框中
     * @参数 [studentId]
     * @返回值 java.util.List<com.fs.cv.pojo.pojoview.StudentCourse>
     * @作者 苏明友
     * @时间 2020/10/8
     */
    @Override
    public StudentCourse getCourseByStudentId(Integer studentId) {
        return studentCourseDao.getCourseByStudentId(studentId);
    }

    /**
     * 方法描述:编辑学生的课程以及对应的成绩
     * @参数 [studentCourse]
     * @返回值 int
     * @作者 苏明友
     * @时间 2020/10/9
     */
    @Override
    public int editScoreById(StudentCourse studentCourse) {
        //编辑学生成绩
        int i = studentCourseDao.editScoreById(studentCourse);
        //编辑学生课程名
        return i;
    }

    /**
     * 方法描述:编辑学生的课程名
     * @参数 [studentCourse]
     * @返回值 int
     * @作者 苏明友
     * @时间 2020/10/9
     */
    @Override
    public int editCourseById(StudentCourse studentCourse) {
        int i = studentCourseDao.editCourseById(studentCourse);
        return i;
    }
}
